/**
*子弹池，
*1,初始化
*责任是找到一个空闲的子弹并且发射出去
*/
  package kgame5.kgu.shotpool {

public class ShotPool{
	
//	//子弹以自己出生地为圆心的存活的半径
//	static var SHOTACTIVERADIUS:Number=1200;
//	
//	//fsmID是从什么地方开始编号的
//	private var startFsmID:Number=0;
//	private var maxCount:Number=0;
//	
//	private var fsmManager:FSMManager;
//	
//	private var world:World;//用来整体删除的时候使用的
//	
//	public function ShotPool(p_startFsmID:Number,p_maxCount:Number,
//		linkID:String,A:Number,B:Number,H:Number,p_world:World,
//		p_fsmManager:FSMManager,fsmListener:Object
//		){
//		
//		startFsmID=p_startFsmID;
//		maxCount=p_maxCount;
//		
//		world=p_world;
//		fsmManager=p_fsmManager;
//		
//		for(var i:Number=0;i<maxCount;i++){
//			var fsm:FSM=this.addShot(startFsmID+i,linkID,A,B,H,world,fsmManager,fsmListener);
//			
//			fsm.getModel().setVisible(false);
//		}
//		
//	}
//	public function FireShot(
//		shooterFsmID:Number,
//		
//		centerX:Number,centerY:Number,centerZ:Number,
//		
//		radius:Number,//初始的半径
//		speed:Number,
//		acc:Number,
//		
//		angle:Number,//在xoz平面的角度
//		angleSpeed:Number,
//		angleAcc:Number,
//		
//		life:Number
//		){
//		//1,取出一个fsm
//		var fsm:FSM=getFreeShot();
//		
//		//2,设置信息
//		var info:Object={
//			shooterFsmID:shooterFsmID,
//			
//			centerX:centerX,
//			centerY:centerY,
//			centerZ:centerZ,
//			
//			radius:radius,
//			speed:speed,
//			acc:acc,
//			
//			angle:angle,
//			angleSpeed:angleSpeed,
//			angleAcc:angleAcc,
//			
//			life:life
//		};
//		
//		//3,跳转状态
//		fsm.SwitchState(ShotFlyState.FSMSTATEID_SHOT_FLY,info);
//	}
//	
//	private function getFreeShot():FSM{
//		for(var i=0;i<maxCount;i++){
//			var fsm:FSM=fsmManager.findFSM(i+startFsmID);
//			if(fsm.getCurState().getID()==-1){//找到一个空闲的
//				return fsm;
//			}
//		}
//		return null;
//	}
//	
//	//从fsmManager里删除fsm,从world里删除md
//	public function dispose(){
//		for(var i=0;i<maxCount;i++){
//			
//			var fsm:FSM=fsmManager.removeFSM(i+startFsmID);
//			world.removeChild(fsm.getModel());
//			fsm.getModel().dispose();
//			
//		}
//	}
//	//创建一个子弹
//	private  function addShot(
//		fsmID:Number,
//		linkID:String,A:Number,B:Number,H:Number,world:World,//模型
//		fsmmanager:FSMManager,fsmListener:Object//fsm相关
//		):FSM{
//		//1---------创建模型
//		var md:Model=Factory3D.CreateModel_Sprite3D(linkID,A,B,H,world);
//		world.addChild(md);
//		// 模型加上影子
//		//Factory3D.CreateModel_Shadow(md,world,"Shadow",20);  
//		
//		//2---------创建fsm
//		//1,fsm
//		var fsm:FSM=new FSM(fsmID,md);
//		
//		//3,state
//		var s0:State=new EmptyState();
//		fsm.addState(s0);
//		
//		var s1:State=new ShotFlyState(ShotFlyState.FSMSTATEID_SHOT_FLY);
//		fsm.addState(s1);
//	
//		//4,默认是在emptyState
//		fsm.SwitchState(-1,null);
//		
//		//4,fsm的listener
//		fsm.addEventListener("On_FSMEvent",fsmListener);
//		
//		fsmmanager.addFSM(fsm);
//		
//		return fsm;
//	}
}//end of class
}